package utils

import "fmt"

var arr0 [5]int = [5]int{1, 2, 3}
var arr1 = [5]int{1, 2, 3, 4, 5}
var arr2 = [...]int{1, 2, 3, 4, 5, 6}
var str = [5]string{3: "hello world", 4: "tom"}

func Array() {
	fmt.Println(arr0)        //打印数组
	fmt.Printf("%T\n", arr0) //打印类型
	fmt.Print("arr1:", arr1)
	a := [3]int{1, 2}           // 未初始化元素值为 0。
	b := [...]int{1, 2, 3, 4}   // 通过初始化值确定数组长度。
	c := [5]int{2: 100, 4: 200} // 使用引号初始化元素。
	d := [...]struct {
		name string
		age  uint8
	}{
		{"user1", 10}, // 可省略元素类型。
		{"user2", 20}, // 别忘了最后一行的逗号。
	}
	fmt.Println(arr0, arr1, arr2, str)
	fmt.Println(a, b, c, d)

	//数组遍历
	for i := 0; i < len(arr1); i++ {
		fmt.Println(arr1[i])
	}
	fmt.Println("------------------")
	//修改数据的值
	str[2] = "这是数组的第二个"
	fmt.Println(str)
	//var n [10]int /* n 是一个长度为 10 的数组 */
	//var i, j int
	//
	///* 为数组 n 初始化元素 */
	//for i = 0; i < 10; i++ {
	//	n[i] = i + 100 /* 设置元素为 i + 100 */
	//}
	//
	///* 输出每个数组元素的值 */
	//for j = 0; j < 10; j++ {
	//	fmt.Printf("Element[%d] = %d\n", j, n[j])
	//}
}
